﻿#define  _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
//int main()
//{
//	int n = 0x11223344;
//
//	return 0;
//}



//请简述⼤端字节序和⼩端字节序的概念，设计⼀个⼩程序来判断当前机器的字节序
//int main()
//{
//	int a = 1;
//	if (*(char*)&a == 1)
//	{
//		printf("小端\n");
//	}
//	else
//	{
//		printf("大端\n");
//	}
//	return 0;
//}

//int check_sys()
//{
//	int a = 1;
//	if (*(char*)&a == 1)
//	{
//		return 1;//小端
//	}
//	else
//	{
//		return 0;//大端
//	}
//}

//int check_sys()
//{
//	int a = 1;
//	return *(char*)&a;//返回1是小端，返回0是大端
//}
//
//int main()
//{
//	if (check_sys() == 1)
//	{
//		printf("小端\n");
//	}
//	else
//	{
//		printf("大端\n");
//	}
//	return 0;
//}



//int main()
//{
//	char a = -1;
//	signed char b = -1;
//	unsigned char c = -1;
//	
//	printf("a=%d,b=%d,c=%d", a, b, c);
//	//		-1,	 -1,  255
//	return 0;
//}

//int main()
//{
//	char a = -128;
//	printf("%u\n", a);
//	//%u 打印无符号整数
//	return 0;
//}

//int main()
//{
//	char a = 128;
//	printf("%u\n", a);
//	return 0;
//}

//int main()
//{
//	signed int num = -10;
//	printf("%d\n", num);
//	printf("%u\n", num);
//
//	return 0;
//}

//int main()
//{
//	unsigned int num = -10;
//	printf("%d\n", num);
//	printf("%u\n", num);
//	return 0;
//}

//#include <string.h>
//
//int main()
//{
//	char a[1000];
//	int i;
//	for (i = 0; i < 1000; i++)
//	{
//		a[i] = -1 - i;
//	}
//	printf("%zd", strlen(a));
//	return 0;
//}

//unsigned char i = 0;
//int main()
//{
//	for (i = 0; i <= 255; i++)
//	{
//		printf("hello world\n");
//	}
//	return 0;
//}

//#include <windows.h>
//
//int main()
//{
//	unsigned int i;
//	for (i = 9; i >= 0; i--)
//	{
//		printf("%u\n", i);
//		Sleep(100);
//	}
//	return 0;
//}


//X86环境 ⼩端字节序
//int main()
//{
//	int a[4] = { 1, 2, 3, 4 };
//	int* ptr1 = (int*)(&a + 1);
//	int* ptr2 = (int*)((int)a + 1);
//	printf("%x,%x", ptr1[-1], *ptr2);
//	return 0;
//}



//int main()
//{
//	float f = 5.5f;
//	//S = 0;
//	//E = 2;
//	//M = 1.011
//	//0100 0000 1011 0000 0000 0000 0000 0000
//	//0x4    0   b    0     0    0    0    0
//	return 0;
//}



//int main()
//{
//	int n = 9;
//	//0000 0000 0000 0000 0000 0000 0000 1001
//	//  0    0    0    0    0    0    0    9
//	float* pFloat = (float*)&n;
//	printf("n的值为：%d\n", n);//9
//	printf("*pFloat的值为：%f\n", *pFloat);//0.000000
//	//0.000 0000 0000 0000 0000 1001 * 2^-126
//	*pFloat = 9.0;
//	printf("num的值为：%d\n", n);//1091567616
//	//1001.0
//	//1.001 * 2^3
//	//(-1)^0 * 1.001 * 2^3
//	//S=0
//	//M=1.001
//	//E=3
//	// 
//	//0100 0001 0001 0000 0000 0000 0000 0000
//	//
//	printf("*pFloat的值为：%f\n", *pFloat);//9.000000
//	return 0;
//}